#ifndef SCENE_H
#define SCENE_H

#include <iostream>
#include <fstream>
#include <stdlib.h>
#include "glm/glm.hpp"
#include "glm/gtc/matrix_transform.hpp"
#include "LinkedList.h"
#include "Light.h"
#include "Camera.h"
#include "Box.h"
#include "Plane.h"
#include "Sphere.h"
#include "Cone.h"
#include "Triangle.h"

using namespace std;
using namespace glm;

class Scene {
public:
    WCamera *camera;
    LinkedList<Object> lights;
    LinkedList<Geometry> geometry;

    Scene() {
        camera = NULL;
    }

    void debug() {
        camera->print();

        lights.reset();
        while (lights.hasNext()) {
            lights.getNext()->print();
        }

        geometry.reset();
        while (geometry.hasNext()) {
            geometry.getNext()->print();
        }
    }
};

#endif
